package com.gome.ocean.common.enums;

/**
 * 愚公运行模式
 * 
 * @author haqiaolong 2016年4月27日 下午2:36:04
 * @since 5.0.0
 */
public enum RunMode {

    MARK("MARK", 1), /** 增量记录 */
    INC("INC", 2), /** 增量 */
    ALL("ALL", 4), /** full+inc自动运行 */
    CHECK("CHECK", 5), /** 对比 */
    FULL("FULL", 3), /** 全量 */
    CLEAR("CLEAR", 6);

    /** 清理 */

    private String value;
    private int    code;

    private RunMode(String value, int code){
        this.value = value;
        this.code = code;
    }

    public static RunMode getRunMode(int code) {
        for (RunMode runMode : RunMode.values()) {
            if (runMode.getCode() == code) {
                return runMode;
            }
        }
        return null;
    }

    /** 增量记录 */
    public boolean isMark() {
        return this == RunMode.MARK;
    }

    /** 增量清理 */
    public boolean isClear() {
        return this == RunMode.CLEAR;
    }

    /** 增量 */
    public boolean isInc() {
        return this == RunMode.INC;
    }

    /** 全量 */
    public boolean isFull() {
        return this == RunMode.FULL;
    }

    /** full+inc自动运行 */
    public boolean isAll() {
        return this == RunMode.ALL;
    }

    public boolean isCheck() {
        return this == RunMode.CHECK;
    }

    public String getValue() {
        return value;
    }

    public int getCode() {
        return code;
    }

}
